// pages/profile/index.ts
Page({
  data: {
    userInfo: {
      nickName: '',
      avatar: '',
    },
  },
  onLoad() {
    // 读取本地存储的用户信息并更新
    this.setData({
      userInfo: wx.getStorageSync('userInfo'),
    })
  },
  // 1. 获取用户昵称
  getUserNickName(ev) {
    this.uploadUserNickName(ev.detail.value)
  },
  // 2. 上传用户昵称
  async uploadUserNickName(nickName) {
    const { code } = await wx.http.put('/userInfo', { nickName })
    if (code !== 10000) return wx.utils.toast('更新昵称失败')
    this.setData({
      'userInfo.nickName': nickName,
    })
  },
  // 3. 获取用户头像
  getUserAvatar(ev) {
    // console.log(ev.detail.avatarUrl)
    this.uploadUserAvatar(ev.detail.avatarUrl)
  },
  // 4. 上传头像
  uploadUserAvatar(avatarUrl) {
    // 4.1 展示上传加载
    wx.showLoading({
      title: '正在上传中...',
    })
    // 4.2 上传文件
    wx.uploadFile({
      url: wx.http.baseURL + '/upload',
      filePath: avatarUrl,
      name: 'file',
      formData: {
        type: 'avatar', // 额外的数据
      },
      header: {
        Authorization: getApp().token,
      },
      success: (res) => {
        // 1.1 需要把服务端的数据转成json
        const data = JSON.parse(res.data)
        // 1.2 判断
        if (data.code !== 10000) return wx.utils.toast('上传头像失败')
        // 1.3 更新数据
        this.setData({
          'userInfo.avatar': data.data.url,
        })
      },
      complete: () => {
        // 4.3 关闭上传加载
        wx.hideLoading()
      },
    })
  },
})
